from enum import IntEnum
from typing import overload, NewType, Optional, Tuple

from OCC.Core.Standard import *
from OCC.Core.NCollection import *
from OCC.Core.TopAbs import *

class TopBas_ListOfTestInterference:
    def Append(self, theItem: TopBas_TestInterference) -> TopBas_TestInterference: ...
    def Assign(
        self, theItem: TopBas_ListOfTestInterference
    ) -> TopBas_ListOfTestInterference: ...
    def Clear(self) -> None: ...
    def First(self) -> TopBas_TestInterference: ...
    def Last(self) -> TopBas_TestInterference: ...
    def Prepend(self, theItem: TopBas_TestInterference) -> TopBas_TestInterference: ...
    def RemoveFirst(self) -> None: ...
    def Reverse(self) -> None: ...
    def Size(self) -> int: ...
    def __init__(self) -> None: ...
    def __len__(self) -> int: ...
    def __iter__(self) -> TopBas_TestInterference: ...

class TopBas_TestInterference:
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(
        self,
        Inters: float,
        Bound: int,
        Orient: TopAbs_Orientation,
        Trans: TopAbs_Orientation,
        BTrans: TopAbs_Orientation,
    ) -> None: ...
    @overload
    def Boundary(self, B: int) -> None: ...
    @overload
    def Boundary(self) -> int: ...
    @overload
    def BoundaryTransition(self, BTr: TopAbs_Orientation) -> None: ...
    @overload
    def BoundaryTransition(self) -> TopAbs_Orientation: ...
    def GetChangeBoundary(self) -> int: ...
    def SetChangeBoundary(self, value: int) -> None: ...
    def GetChangeIntersection(self) -> float: ...
    def SetChangeIntersection(self, value: float) -> None: ...
    @overload
    def Intersection(self, I: float) -> None: ...
    @overload
    def Intersection(self) -> float: ...
    @overload
    def Orientation(self, O: TopAbs_Orientation) -> None: ...
    @overload
    def Orientation(self) -> TopAbs_Orientation: ...
    @overload
    def Transition(self, Tr: TopAbs_Orientation) -> None: ...
    @overload
    def Transition(self) -> TopAbs_Orientation: ...

# harray1 classes
# harray2 classes
# hsequence classes
